/**
 * Generali Solutions d'assurances - Tous droits réservés &copy; 2007 - 2010
 */

package fr.generali.accueilclient.opt.detailcampagne.builder;

import java.util.Date;

import fr.generali.accueilclient.opt.detailcampagne.om.IOffreCommercialeDetailCamp;
import fr.generali.accueilclient.opt.detailcampagne.om.impl.DTOOffreCommercialeDetailCamp;

/**
 * @author Holmes Kelly
 */
public class DTOOffreCommercialeDetailCampBuilder extends
                DTOOffreCommercialeDetailCampBuilderBase<DTOOffreCommercialeDetailCampBuilder> {

    /**
     * constructeur
     */
    public DTOOffreCommercialeDetailCampBuilder() {
        super(new DTOOffreCommercialeDetailCamp());
    }

    /**
     * @return DTOOffreCommercialeDetailCampBuilder
     */
    public static DTOOffreCommercialeDetailCampBuilder dTOOffreCommercialeDetailCamp() {
        return new DTOOffreCommercialeDetailCampBuilder();
    }

    /**
     * @return instance
     */
    public IOffreCommercialeDetailCamp build() {
        return getInstance();
    }
}

/**
 * @author Holmes Kelly
 * @param <GeneratorT>
 */
class DTOOffreCommercialeDetailCampBuilderBase<GeneratorT extends DTOOffreCommercialeDetailCampBuilderBase<GeneratorT>> {

    /**
     * instance
     */
    private IOffreCommercialeDetailCamp instance;

    /**
     * @param aInstance instance
     */
    protected DTOOffreCommercialeDetailCampBuilderBase(IOffreCommercialeDetailCamp aInstance) {
        instance = aInstance;
    }

    /**
     * @return instance
     */
    protected IOffreCommercialeDetailCamp getInstance() {
        return instance;
    }

    /**
     * @param aValue identifiant
     * @return GeneratorT
     */
    @SuppressWarnings("unchecked")
    public GeneratorT buildIdentifiant(String aValue) {
        instance.setIdentifiant(aValue);

        return (GeneratorT ) this;
    }

    /**
     * @param aValue libelle
     * @return GeneratorT
     */
    @SuppressWarnings("unchecked")
    public GeneratorT buildLibelle(String aValue) {
        instance.setLibelle(aValue);

        return (GeneratorT ) this;
    }

    /**
     * @param aValue date debut impact
     * @return GeneratorT
     */
    @SuppressWarnings("unchecked")
    public GeneratorT buildDateDebImpact(Date aValue) {
        instance.setDateDebImpact(aValue);

        return (GeneratorT ) this;
    }

    /**
     * @param aValue date fin impact
     * @return GeneratorT
     */
    @SuppressWarnings("unchecked")
    public GeneratorT buildDateFinImpact(Date aValue) {
        instance.setDateFinImpact(aValue);

        return (GeneratorT ) this;
    }
}
